if (Signals & 1L<<NotifyPort->mp_SigBit) while (Msg = (struct AMMessage *)GetMsg(NotifyPort))
{
switch(Msg->Action)
{
case NOTIFY_NEWITEM:
if (!GetNum(&Mailbox,Msg->Number))
{
DeselectAll(&Selected);
AddTail(&Mailbox,&(Msg->NewMail->m_Node));
RefreshDisplay(Select,Show,Sort,&Mailbox,
&Selected,LastSelected,(void *)SearchPattern);
}
break;
case NOTIFY_ITEM_DELETED:
DeselectAll(&Selected);
if (New = GetNum(&Mailbox,Msg->Number))
{
Remove(&(New->m_Node));
FreeMail(New);
}
RefreshDisplay(Select,Show,Sort,&Mailbox,
&Selected,LastSelected,(void *)SearchPattern);
break;
case NOTIFY_ITEM_CHANGED:
RefreshDisplay(0,Show,0,&Mailbox,
&Selected,LastSelected,(void *)SearchPattern);
break;
}
FreeMem(Msg,sizeof(struct AMMessage));
}
/* handle Intuition events */
if (Signals & 1L<<Window->UserPort->mp_SigBit) while (IMsg = GT_GetIMsg(Window->UserPort))
{
/* remember values */
Class = IMsg->Class;
Code = IMsg->Code;
IAddr = IMsg->IAddress;
Secs = IMsg->Seconds;
Micros = IMsg->Micros;
/* replay message */
GT_ReplyIMsg(IMsg);
/* dispatch */
switch(Class)
{
case REFRESHWINDOW:
GT_BeginRefresh(Window);
GT_EndRefresh(Window,TRUE);
break;
case CLOSEWINDOW:
if (running)
SimpleRequest(Window,"There are running subprocesses");
else
if (TwoGadRequest(Window,"Really Quit?"))
run = FALSE;
break;
case MENUPICK:
if (Code==MENUNULL) break;
if (!(MenuItem = ItemAddress(Menu,Code))) break;
switch((ULONG)GTMENUITEM_USERDATA(MenuItem))
{
case PROJ_QUIT:
if (running)
SimpleRequest(Window,"There are running subprocesses");
else
if (TwoGadRequest(Window,"Really Quit?"))
run = FALSE;
break;
case PROJ_EXIT:
if (running)
SimpleRequest(Window,"There are running subprocesses");
else
if (TwoGadRequest(Window,"Really Exit?"))
run = ExitFlag = FALSE;
break;
case PROJ_ABOUT:
Busy();
SimpleRequest(Window,"AM %s (AmigaMail)\n(C) 1991, 1992 by Christian Riede\nUse and distribute under the terms of\nthe GNU General Public License Version 1",